import torch

from refiners.conversion.utils import Conversion, Hub, WeightRecipe

diffusers_recipe = WeightRecipe(
    key_map={
        "image_proj.proj": "image_proj.Linear",
        "image_proj.norm": "image_proj.LayerNorm",
        "ip_adapter.1.to_k_ip": "ip_adapter.000.to_k_ip",
        "ip_adapter.1.to_v_ip": "ip_adapter.000.to_v_ip",
        "ip_adapter.3.to_k_ip": "ip_adapter.001.to_k_ip",
        "ip_adapter.3.to_v_ip": "ip_adapter.001.to_v_ip",
        "ip_adapter.5.to_k_ip": "ip_adapter.002.to_k_ip",
        "ip_adapter.5.to_v_ip": "ip_adapter.002.to_v_ip",
        "ip_adapter.7.to_k_ip": "ip_adapter.003.to_k_ip",
        "ip_adapter.7.to_v_ip": "ip_adapter.003.to_v_ip",
        "ip_adapter.9.to_k_ip": "ip_adapter.004.to_k_ip",
        "ip_adapter.9.to_v_ip": "ip_adapter.004.to_v_ip",
        "ip_adapter.11.to_k_ip": "ip_adapter.005.to_k_ip",
        "ip_adapter.11.to_v_ip": "ip_adapter.005.to_v_ip",
        "ip_adapter.13.to_k_ip": "ip_adapter.006.to_k_ip",
        "ip_adapter.13.to_v_ip": "ip_adapter.006.to_v_ip",
        "ip_adapter.15.to_k_ip": "ip_adapter.007.to_k_ip",
        "ip_adapter.15.to_v_ip": "ip_adapter.007.to_v_ip",
        "ip_adapter.17.to_k_ip": "ip_adapter.008.to_k_ip",
        "ip_adapter.17.to_v_ip": "ip_adapter.008.to_v_ip",
        "ip_adapter.19.to_k_ip": "ip_adapter.009.to_k_ip",
        "ip_adapter.19.to_v_ip": "ip_adapter.009.to_v_ip",
        "ip_adapter.21.to_k_ip": "ip_adapter.010.to_k_ip",
        "ip_adapter.21.to_v_ip": "ip_adapter.010.to_v_ip",
        "ip_adapter.23.to_k_ip": "ip_adapter.011.to_k_ip",
        "ip_adapter.23.to_v_ip": "ip_adapter.011.to_v_ip",
        "ip_adapter.25.to_k_ip": "ip_adapter.012.to_k_ip",
        "ip_adapter.25.to_v_ip": "ip_adapter.012.to_v_ip",
        "ip_adapter.27.to_k_ip": "ip_adapter.013.to_k_ip",
        "ip_adapter.27.to_v_ip": "ip_adapter.013.to_v_ip",
        "ip_adapter.29.to_k_ip": "ip_adapter.014.to_k_ip",
        "ip_adapter.29.to_v_ip": "ip_adapter.014.to_v_ip",
        "ip_adapter.31.to_k_ip": "ip_adapter.015.to_k_ip",
        "ip_adapter.31.to_v_ip": "ip_adapter.015.to_v_ip",
        "ip_adapter.33.to_k_ip": "ip_adapter.016.to_k_ip",
        "ip_adapter.33.to_v_ip": "ip_adapter.016.to_v_ip",
        "ip_adapter.35.to_k_ip": "ip_adapter.017.to_k_ip",
        "ip_adapter.35.to_v_ip": "ip_adapter.017.to_v_ip",
        "ip_adapter.37.to_k_ip": "ip_adapter.018.to_k_ip",
        "ip_adapter.37.to_v_ip": "ip_adapter.018.to_v_ip",
        "ip_adapter.39.to_k_ip": "ip_adapter.019.to_k_ip",
        "ip_adapter.39.to_v_ip": "ip_adapter.019.to_v_ip",
        "ip_adapter.41.to_k_ip": "ip_adapter.020.to_k_ip",
        "ip_adapter.41.to_v_ip": "ip_adapter.020.to_v_ip",
        "ip_adapter.43.to_k_ip": "ip_adapter.021.to_k_ip",
        "ip_adapter.43.to_v_ip": "ip_adapter.021.to_v_ip",
        "ip_adapter.45.to_k_ip": "ip_adapter.022.to_k_ip",
        "ip_adapter.45.to_v_ip": "ip_adapter.022.to_v_ip",
        "ip_adapter.47.to_k_ip": "ip_adapter.023.to_k_ip",
        "ip_adapter.47.to_v_ip": "ip_adapter.023.to_v_ip",
        "ip_adapter.121.to_k_ip": "ip_adapter.024.to_k_ip",
        "ip_adapter.121.to_v_ip": "ip_adapter.024.to_v_ip",
        "ip_adapter.123.to_k_ip": "ip_adapter.025.to_k_ip",
        "ip_adapter.123.to_v_ip": "ip_adapter.025.to_v_ip",
        "ip_adapter.125.to_k_ip": "ip_adapter.026.to_k_ip",
        "ip_adapter.125.to_v_ip": "ip_adapter.026.to_v_ip",
        "ip_adapter.127.to_k_ip": "ip_adapter.027.to_k_ip",
        "ip_adapter.127.to_v_ip": "ip_adapter.027.to_v_ip",
        "ip_adapter.129.to_k_ip": "ip_adapter.028.to_k_ip",
        "ip_adapter.129.to_v_ip": "ip_adapter.028.to_v_ip",
        "ip_adapter.131.to_k_ip": "ip_adapter.029.to_k_ip",
        "ip_adapter.131.to_v_ip": "ip_adapter.029.to_v_ip",
        "ip_adapter.133.to_k_ip": "ip_adapter.030.to_k_ip",
        "ip_adapter.133.to_v_ip": "ip_adapter.030.to_v_ip",
        "ip_adapter.135.to_k_ip": "ip_adapter.031.to_k_ip",
        "ip_adapter.135.to_v_ip": "ip_adapter.031.to_v_ip",
        "ip_adapter.137.to_k_ip": "ip_adapter.032.to_k_ip",
        "ip_adapter.137.to_v_ip": "ip_adapter.032.to_v_ip",
        "ip_adapter.139.to_k_ip": "ip_adapter.033.to_k_ip",
        "ip_adapter.139.to_v_ip": "ip_adapter.033.to_v_ip",
        "ip_adapter.49.to_k_ip": "ip_adapter.034.to_k_ip",
        "ip_adapter.49.to_v_ip": "ip_adapter.034.to_v_ip",
        "ip_adapter.51.to_k_ip": "ip_adapter.035.to_k_ip",
        "ip_adapter.51.to_v_ip": "ip_adapter.035.to_v_ip",
        "ip_adapter.53.to_k_ip": "ip_adapter.036.to_k_ip",
        "ip_adapter.53.to_v_ip": "ip_adapter.036.to_v_ip",
        "ip_adapter.55.to_k_ip": "ip_adapter.037.to_k_ip",
        "ip_adapter.55.to_v_ip": "ip_adapter.037.to_v_ip",
        "ip_adapter.57.to_k_ip": "ip_adapter.038.to_k_ip",
        "ip_adapter.57.to_v_ip": "ip_adapter.038.to_v_ip",
        "ip_adapter.59.to_k_ip": "ip_adapter.039.to_k_ip",
        "ip_adapter.59.to_v_ip": "ip_adapter.039.to_v_ip",
        "ip_adapter.61.to_k_ip": "ip_adapter.040.to_k_ip",
        "ip_adapter.61.to_v_ip": "ip_adapter.040.to_v_ip",
        "ip_adapter.63.to_k_ip": "ip_adapter.041.to_k_ip",
        "ip_adapter.63.to_v_ip": "ip_adapter.041.to_v_ip",
        "ip_adapter.65.to_k_ip": "ip_adapter.042.to_k_ip",
        "ip_adapter.65.to_v_ip": "ip_adapter.042.to_v_ip",
        "ip_adapter.67.to_k_ip": "ip_adapter.043.to_k_ip",
        "ip_adapter.67.to_v_ip": "ip_adapter.043.to_v_ip",
        "ip_adapter.69.to_k_ip": "ip_adapter.044.to_k_ip",
        "ip_adapter.69.to_v_ip": "ip_adapter.044.to_v_ip",
        "ip_adapter.71.to_k_ip": "ip_adapter.045.to_k_ip",
        "ip_adapter.71.to_v_ip": "ip_adapter.045.to_v_ip",
        "ip_adapter.73.to_k_ip": "ip_adapter.046.to_k_ip",
        "ip_adapter.73.to_v_ip": "ip_adapter.046.to_v_ip",
        "ip_adapter.75.to_k_ip": "ip_adapter.047.to_k_ip",
        "ip_adapter.75.to_v_ip": "ip_adapter.047.to_v_ip",
        "ip_adapter.77.to_k_ip": "ip_adapter.048.to_k_ip",
        "ip_adapter.77.to_v_ip": "ip_adapter.048.to_v_ip",
        "ip_adapter.79.to_k_ip": "ip_adapter.049.to_k_ip",
        "ip_adapter.79.to_v_ip": "ip_adapter.049.to_v_ip",
        "ip_adapter.81.to_k_ip": "ip_adapter.050.to_k_ip",
        "ip_adapter.81.to_v_ip": "ip_adapter.050.to_v_ip",
        "ip_adapter.83.to_k_ip": "ip_adapter.051.to_k_ip",
        "ip_adapter.83.to_v_ip": "ip_adapter.051.to_v_ip",
        "ip_adapter.85.to_k_ip": "ip_adapter.052.to_k_ip",
        "ip_adapter.85.to_v_ip": "ip_adapter.052.to_v_ip",
        "ip_adapter.87.to_k_ip": "ip_adapter.053.to_k_ip",
        "ip_adapter.87.to_v_ip": "ip_adapter.053.to_v_ip",
        "ip_adapter.89.to_k_ip": "ip_adapter.054.to_k_ip",
        "ip_adapter.89.to_v_ip": "ip_adapter.054.to_v_ip",
        "ip_adapter.91.to_k_ip": "ip_adapter.055.to_k_ip",
        "ip_adapter.91.to_v_ip": "ip_adapter.055.to_v_ip",
        "ip_adapter.93.to_k_ip": "ip_adapter.056.to_k_ip",
        "ip_adapter.93.to_v_ip": "ip_adapter.056.to_v_ip",
        "ip_adapter.95.to_k_ip": "ip_adapter.057.to_k_ip",
        "ip_adapter.95.to_v_ip": "ip_adapter.057.to_v_ip",
        "ip_adapter.97.to_k_ip": "ip_adapter.058.to_k_ip",
        "ip_adapter.97.to_v_ip": "ip_adapter.058.to_v_ip",
        "ip_adapter.99.to_k_ip": "ip_adapter.059.to_k_ip",
        "ip_adapter.99.to_v_ip": "ip_adapter.059.to_v_ip",
        "ip_adapter.101.to_k_ip": "ip_adapter.060.to_k_ip",
        "ip_adapter.101.to_v_ip": "ip_adapter.060.to_v_ip",
        "ip_adapter.103.to_k_ip": "ip_adapter.061.to_k_ip",
        "ip_adapter.103.to_v_ip": "ip_adapter.061.to_v_ip",
        "ip_adapter.105.to_k_ip": "ip_adapter.062.to_k_ip",
        "ip_adapter.105.to_v_ip": "ip_adapter.062.to_v_ip",
        "ip_adapter.107.to_k_ip": "ip_adapter.063.to_k_ip",
        "ip_adapter.107.to_v_ip": "ip_adapter.063.to_v_ip",
        "ip_adapter.109.to_k_ip": "ip_adapter.064.to_k_ip",
        "ip_adapter.109.to_v_ip": "ip_adapter.064.to_v_ip",
        "ip_adapter.111.to_k_ip": "ip_adapter.065.to_k_ip",
        "ip_adapter.111.to_v_ip": "ip_adapter.065.to_v_ip",
        "ip_adapter.113.to_k_ip": "ip_adapter.066.to_k_ip",
        "ip_adapter.113.to_v_ip": "ip_adapter.066.to_v_ip",
        "ip_adapter.115.to_k_ip": "ip_adapter.067.to_k_ip",
        "ip_adapter.115.to_v_ip": "ip_adapter.067.to_v_ip",
        "ip_adapter.117.to_k_ip": "ip_adapter.068.to_k_ip",
        "ip_adapter.117.to_v_ip": "ip_adapter.068.to_v_ip",
        "ip_adapter.119.to_k_ip": "ip_adapter.069.to_k_ip",
        "ip_adapter.119.to_v_ip": "ip_adapter.069.to_v_ip",
    },
)

plus_diffusers_recipe = WeightRecipe(
    key_map={
        "image_proj.latents": "image_proj.LatentsToken.Parameter.weight",
        "image_proj.proj_in": "image_proj.Linear_1",
        "image_proj.proj_out": "image_proj.Linear_2",
        "image_proj.norm_out": "image_proj.LayerNorm",
        "image_proj.layers.0.0.norm1": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_1",
        "image_proj.layers.0.0.norm2": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Distribute.LayerNorm_2",
        "image_proj.layers.0.0.to_q": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear",
        "image_proj.layers.0.0.to_kv": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear",
        "image_proj.layers.0.0.to_out": "image_proj.Transformer.TransformerLayer_1.Residual_1.PerceiverAttention.Linear",
        "image_proj.layers.0.1.0": "image_proj.Transformer.TransformerLayer_1.Residual_2.LayerNorm",
        "image_proj.layers.0.1.1": "image_proj.Transformer.TransformerLayer_1.Residual_2.FeedForward.Linear_1",
        "image_proj.layers.0.1.3": "image_proj.Transformer.TransformerLayer_1.Residual_2.FeedForward.Linear_2",
        "image_proj.layers.1.0.norm1": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_1",
        "image_proj.layers.1.0.norm2": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Distribute.LayerNorm_2",
        "image_proj.layers.1.0.to_q": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear",
        "image_proj.layers.1.0.to_kv": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear",
        "image_proj.layers.1.0.to_out": "image_proj.Transformer.TransformerLayer_2.Residual_1.PerceiverAttention.Linear",
        "image_proj.layers.1.1.0": "image_proj.Transformer.TransformerLayer_2.Residual_2.LayerNorm",
        "image_proj.layers.1.1.1": "image_proj.Transformer.TransformerLayer_2.Residual_2.FeedForward.Linear_1",
        "image_proj.layers.1.1.3": "image_proj.Transformer.TransformerLayer_2.Residual_2.FeedForward.Linear_2",
        "image_proj.layers.2.0.norm1": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_1",
        "image_proj.layers.2.0.norm2": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Distribute.LayerNorm_2",
        "image_proj.layers.2.0.to_q": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear",
        "image_proj.layers.2.0.to_kv": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear",
        "image_proj.layers.2.0.to_out": "image_proj.Transformer.TransformerLayer_3.Residual_1.PerceiverAttention.Linear",
        "image_proj.layers.2.1.0": "image_proj.Transformer.TransformerLayer_3.Residual_2.LayerNorm",
        "image_proj.layers.2.1.1": "image_proj.Transformer.TransformerLayer_3.Residual_2.FeedForward.Linear_1",
        "image_proj.layers.2.1.3": "image_proj.Transformer.TransformerLayer_3.Residual_2.FeedForward.Linear_2",
        "image_proj.layers.3.0.norm1": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_1",
        "image_proj.layers.3.0.norm2": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Distribute.LayerNorm_2",
        "image_proj.layers.3.0.to_q": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Parallel.Chain_2.Linear",
        "image_proj.layers.3.0.to_kv": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Parallel.Chain_1.Linear",
        "image_proj.layers.3.0.to_out": "image_proj.Transformer.TransformerLayer_4.Residual_1.PerceiverAttention.Linear",
        "image_proj.layers.3.1.0": "image_proj.Transformer.TransformerLayer_4.Residual_2.LayerNorm",
        "image_proj.layers.3.1.1": "image_proj.Transformer.TransformerLayer_4.Residual_2.FeedForward.Linear_1",
        "image_proj.layers.3.1.3": "image_proj.Transformer.TransformerLayer_4.Residual_2.FeedForward.Linear_2",
        "ip_adapter.1.to_k_ip": "ip_adapter.000.to_k_ip",
        "ip_adapter.1.to_v_ip": "ip_adapter.000.to_v_ip",
        "ip_adapter.3.to_k_ip": "ip_adapter.001.to_k_ip",
        "ip_adapter.3.to_v_ip": "ip_adapter.001.to_v_ip",
        "ip_adapter.5.to_k_ip": "ip_adapter.002.to_k_ip",
        "ip_adapter.5.to_v_ip": "ip_adapter.002.to_v_ip",
        "ip_adapter.7.to_k_ip": "ip_adapter.003.to_k_ip",
        "ip_adapter.7.to_v_ip": "ip_adapter.003.to_v_ip",
        "ip_adapter.9.to_k_ip": "ip_adapter.004.to_k_ip",
        "ip_adapter.9.to_v_ip": "ip_adapter.004.to_v_ip",
        "ip_adapter.11.to_k_ip": "ip_adapter.005.to_k_ip",
        "ip_adapter.11.to_v_ip": "ip_adapter.005.to_v_ip",
        "ip_adapter.13.to_k_ip": "ip_adapter.006.to_k_ip",
        "ip_adapter.13.to_v_ip": "ip_adapter.006.to_v_ip",
        "ip_adapter.15.to_k_ip": "ip_adapter.007.to_k_ip",
        "ip_adapter.15.to_v_ip": "ip_adapter.007.to_v_ip",
        "ip_adapter.17.to_k_ip": "ip_adapter.008.to_k_ip",
        "ip_adapter.17.to_v_ip": "ip_adapter.008.to_v_ip",
        "ip_adapter.19.to_k_ip": "ip_adapter.009.to_k_ip",
        "ip_adapter.19.to_v_ip": "ip_adapter.009.to_v_ip",
        "ip_adapter.21.to_k_ip": "ip_adapter.010.to_k_ip",
        "ip_adapter.21.to_v_ip": "ip_adapter.010.to_v_ip",
        "ip_adapter.23.to_k_ip": "ip_adapter.011.to_k_ip",
        "ip_adapter.23.to_v_ip": "ip_adapter.011.to_v_ip",
        "ip_adapter.25.to_k_ip": "ip_adapter.012.to_k_ip",
        "ip_adapter.25.to_v_ip": "ip_adapter.012.to_v_ip",
        "ip_adapter.27.to_k_ip": "ip_adapter.013.to_k_ip",
        "ip_adapter.27.to_v_ip": "ip_adapter.013.to_v_ip",
        "ip_adapter.29.to_k_ip": "ip_adapter.014.to_k_ip",
        "ip_adapter.29.to_v_ip": "ip_adapter.014.to_v_ip",
        "ip_adapter.31.to_k_ip": "ip_adapter.015.to_k_ip",
        "ip_adapter.31.to_v_ip": "ip_adapter.015.to_v_ip",
        "ip_adapter.33.to_k_ip": "ip_adapter.016.to_k_ip",
        "ip_adapter.33.to_v_ip": "ip_adapter.016.to_v_ip",
        "ip_adapter.35.to_k_ip": "ip_adapter.017.to_k_ip",
        "ip_adapter.35.to_v_ip": "ip_adapter.017.to_v_ip",
        "ip_adapter.37.to_k_ip": "ip_adapter.018.to_k_ip",
        "ip_adapter.37.to_v_ip": "ip_adapter.018.to_v_ip",
        "ip_adapter.39.to_k_ip": "ip_adapter.019.to_k_ip",
        "ip_adapter.39.to_v_ip": "ip_adapter.019.to_v_ip",
        "ip_adapter.41.to_k_ip": "ip_adapter.020.to_k_ip",
        "ip_adapter.41.to_v_ip": "ip_adapter.020.to_v_ip",
        "ip_adapter.43.to_k_ip": "ip_adapter.021.to_k_ip",
        "ip_adapter.43.to_v_ip": "ip_adapter.021.to_v_ip",
        "ip_adapter.45.to_k_ip": "ip_adapter.022.to_k_ip",
        "ip_adapter.45.to_v_ip": "ip_adapter.022.to_v_ip",
        "ip_adapter.47.to_k_ip": "ip_adapter.023.to_k_ip",
        "ip_adapter.47.to_v_ip": "ip_adapter.023.to_v_ip",
        "ip_adapter.121.to_k_ip": "ip_adapter.024.to_k_ip",
        "ip_adapter.121.to_v_ip": "ip_adapter.024.to_v_ip",
        "ip_adapter.123.to_k_ip": "ip_adapter.025.to_k_ip",
        "ip_adapter.123.to_v_ip": "ip_adapter.025.to_v_ip",
        "ip_adapter.125.to_k_ip": "ip_adapter.026.to_k_ip",
        "ip_adapter.125.to_v_ip": "ip_adapter.026.to_v_ip",
        "ip_adapter.127.to_k_ip": "ip_adapter.027.to_k_ip",
        "ip_adapter.127.to_v_ip": "ip_adapter.027.to_v_ip",
        "ip_adapter.129.to_k_ip": "ip_adapter.028.to_k_ip",
        "ip_adapter.129.to_v_ip": "ip_adapter.028.to_v_ip",
        "ip_adapter.131.to_k_ip": "ip_adapter.029.to_k_ip",
        "ip_adapter.131.to_v_ip": "ip_adapter.029.to_v_ip",
        "ip_adapter.133.to_k_ip": "ip_adapter.030.to_k_ip",
        "ip_adapter.133.to_v_ip": "ip_adapter.030.to_v_ip",
        "ip_adapter.135.to_k_ip": "ip_adapter.031.to_k_ip",
        "ip_adapter.135.to_v_ip": "ip_adapter.031.to_v_ip",
        "ip_adapter.137.to_k_ip": "ip_adapter.032.to_k_ip",
        "ip_adapter.137.to_v_ip": "ip_adapter.032.to_v_ip",
        "ip_adapter.139.to_k_ip": "ip_adapter.033.to_k_ip",
        "ip_adapter.139.to_v_ip": "ip_adapter.033.to_v_ip",
        "ip_adapter.49.to_k_ip": "ip_adapter.034.to_k_ip",
        "ip_adapter.49.to_v_ip": "ip_adapter.034.to_v_ip",
        "ip_adapter.51.to_k_ip": "ip_adapter.035.to_k_ip",
        "ip_adapter.51.to_v_ip": "ip_adapter.035.to_v_ip",
        "ip_adapter.53.to_k_ip": "ip_adapter.036.to_k_ip",
        "ip_adapter.53.to_v_ip": "ip_adapter.036.to_v_ip",
        "ip_adapter.55.to_k_ip": "ip_adapter.037.to_k_ip",
        "ip_adapter.55.to_v_ip": "ip_adapter.037.to_v_ip",
        "ip_adapter.57.to_k_ip": "ip_adapter.038.to_k_ip",
        "ip_adapter.57.to_v_ip": "ip_adapter.038.to_v_ip",
        "ip_adapter.59.to_k_ip": "ip_adapter.039.to_k_ip",
        "ip_adapter.59.to_v_ip": "ip_adapter.039.to_v_ip",
        "ip_adapter.61.to_k_ip": "ip_adapter.040.to_k_ip",
        "ip_adapter.61.to_v_ip": "ip_adapter.040.to_v_ip",
        "ip_adapter.63.to_k_ip": "ip_adapter.041.to_k_ip",
        "ip_adapter.63.to_v_ip": "ip_adapter.041.to_v_ip",
        "ip_adapter.65.to_k_ip": "ip_adapter.042.to_k_ip",
        "ip_adapter.65.to_v_ip": "ip_adapter.042.to_v_ip",
        "ip_adapter.67.to_k_ip": "ip_adapter.043.to_k_ip",
        "ip_adapter.67.to_v_ip": "ip_adapter.043.to_v_ip",
        "ip_adapter.69.to_k_ip": "ip_adapter.044.to_k_ip",
        "ip_adapter.69.to_v_ip": "ip_adapter.044.to_v_ip",
        "ip_adapter.71.to_k_ip": "ip_adapter.045.to_k_ip",
        "ip_adapter.71.to_v_ip": "ip_adapter.045.to_v_ip",
        "ip_adapter.73.to_k_ip": "ip_adapter.046.to_k_ip",
        "ip_adapter.73.to_v_ip": "ip_adapter.046.to_v_ip",
        "ip_adapter.75.to_k_ip": "ip_adapter.047.to_k_ip",
        "ip_adapter.75.to_v_ip": "ip_adapter.047.to_v_ip",
        "ip_adapter.77.to_k_ip": "ip_adapter.048.to_k_ip",
        "ip_adapter.77.to_v_ip": "ip_adapter.048.to_v_ip",
        "ip_adapter.79.to_k_ip": "ip_adapter.049.to_k_ip",
        "ip_adapter.79.to_v_ip": "ip_adapter.049.to_v_ip",
        "ip_adapter.81.to_k_ip": "ip_adapter.050.to_k_ip",
        "ip_adapter.81.to_v_ip": "ip_adapter.050.to_v_ip",
        "ip_adapter.83.to_k_ip": "ip_adapter.051.to_k_ip",
        "ip_adapter.83.to_v_ip": "ip_adapter.051.to_v_ip",
        "ip_adapter.85.to_k_ip": "ip_adapter.052.to_k_ip",
        "ip_adapter.85.to_v_ip": "ip_adapter.052.to_v_ip",
        "ip_adapter.87.to_k_ip": "ip_adapter.053.to_k_ip",
        "ip_adapter.87.to_v_ip": "ip_adapter.053.to_v_ip",
        "ip_adapter.89.to_k_ip": "ip_adapter.054.to_k_ip",
        "ip_adapter.89.to_v_ip": "ip_adapter.054.to_v_ip",
        "ip_adapter.91.to_k_ip": "ip_adapter.055.to_k_ip",
        "ip_adapter.91.to_v_ip": "ip_adapter.055.to_v_ip",
        "ip_adapter.93.to_k_ip": "ip_adapter.056.to_k_ip",
        "ip_adapter.93.to_v_ip": "ip_adapter.056.to_v_ip",
        "ip_adapter.95.to_k_ip": "ip_adapter.057.to_k_ip",
        "ip_adapter.95.to_v_ip": "ip_adapter.057.to_v_ip",
        "ip_adapter.97.to_k_ip": "ip_adapter.058.to_k_ip",
        "ip_adapter.97.to_v_ip": "ip_adapter.058.to_v_ip",
        "ip_adapter.99.to_k_ip": "ip_adapter.059.to_k_ip",
        "ip_adapter.99.to_v_ip": "ip_adapter.059.to_v_ip",
        "ip_adapter.101.to_k_ip": "ip_adapter.060.to_k_ip",
        "ip_adapter.101.to_v_ip": "ip_adapter.060.to_v_ip",
        "ip_adapter.103.to_k_ip": "ip_adapter.061.to_k_ip",
        "ip_adapter.103.to_v_ip": "ip_adapter.061.to_v_ip",
        "ip_adapter.105.to_k_ip": "ip_adapter.062.to_k_ip",
        "ip_adapter.105.to_v_ip": "ip_adapter.062.to_v_ip",
        "ip_adapter.107.to_k_ip": "ip_adapter.063.to_k_ip",
        "ip_adapter.107.to_v_ip": "ip_adapter.063.to_v_ip",
        "ip_adapter.109.to_k_ip": "ip_adapter.064.to_k_ip",
        "ip_adapter.109.to_v_ip": "ip_adapter.064.to_v_ip",
        "ip_adapter.111.to_k_ip": "ip_adapter.065.to_k_ip",
        "ip_adapter.111.to_v_ip": "ip_adapter.065.to_v_ip",
        "ip_adapter.113.to_k_ip": "ip_adapter.066.to_k_ip",
        "ip_adapter.113.to_v_ip": "ip_adapter.066.to_v_ip",
        "ip_adapter.115.to_k_ip": "ip_adapter.067.to_k_ip",
        "ip_adapter.115.to_v_ip": "ip_adapter.067.to_v_ip",
        "ip_adapter.117.to_k_ip": "ip_adapter.068.to_k_ip",
        "ip_adapter.117.to_v_ip": "ip_adapter.068.to_v_ip",
        "ip_adapter.119.to_k_ip": "ip_adapter.069.to_k_ip",
        "ip_adapter.119.to_v_ip": "ip_adapter.069.to_v_ip",
    },
    tensor_reshapes={"image_proj.LatentsToken.Parameter.weight": (16, 1280)},
)

base = Conversion(
    original=Hub(
        repo_id="h94/IP-Adapter",
        filename="sdxl_models/ip-adapter_sdxl_vit-h.safetensors",
        revision="018e402774aeeddd60609b4ecdb7e298259dc729",
        expected_sha256="ebf05d918348aec7abb02a5e9ecef77e0aaea6914a5c4ea13f50d45eb1681831",
    ),
    converted=Hub(
        repo_id="refiners/sdxl.ip_adapter",
        filename="model.safetensors",
        expected_sha256="91fc7f3c9571ed26a93372e7251596c7269f37e134fae3a6a5f4f7247d998ab8",
    ),
    recipe=diffusers_recipe,
    dtype=torch.float16,
)
plus = Conversion(
    original=Hub(
        repo_id="h94/IP-Adapter",
        filename="sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors",
        revision="018e402774aeeddd60609b4ecdb7e298259dc729",
        expected_sha256="3f5062b8400c94b7159665b21ba5c62acdcd7682262743d7f2aefedef00e6581",
    ),
    converted=Hub(
        repo_id="refiners/sdxl.ip_adapter.plus",
        filename="model.safetensors",
        expected_sha256="9fdbcb4c6e3a643b6e8c002945685cc9d12ddd9787ce8b3e53fdeb814002ca22",
    ),
    recipe=plus_diffusers_recipe,
    dtype=torch.float16,
)
